package day03;
/*
懒汉式的单例模式
 */
public class lazyBones {
    public static void main(String[] args) {
        System.out.println(Cat.anInt);//就算是你的类加载了 但是我们并没有new所以构造器并不会被调用
        Cat cat = Cat.getCat();//这个时候我们就可以在想创建的时候就去创建 不想的时候就不去创建
        Cat cat1 = Cat.getCat();
        System.out.println(cat==cat1);//true
    }
}
//比如说一个人只能养一只猫猫
//希望在程序运行中 只能创建一个cat对象
//使用单例模式进行操作处理
class Cat{
    private String name;
    private static Cat cat;//这里如果直接new就会饿汉式一样啦
    public static int anInt=11111;
    //步骤
    //1.仍然将构造器私有化
    //2.定义一个静态属性对象
    //3.提供一个公共的public的static方法，可以返回一个Cat对象
    //4.懒汉式 只有当用户调用的时候，我们才会返回一个cat对象进行操作处理。
    private Cat(String name) {
        this.name = name;
    }
    public static Cat getCat(){
        if(cat==null){//所以说的话 只会调用一次 不会给你创建新的变量 而是仅仅返回上一次的
            cat=new Cat("小白");
        }
        return cat;
    }
}
